package 集合;

import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;

/**
 * @ClassName : FanXingText
 * @Author : LV88VL
 * @Date: 2021/3/12 10:59
 * @Description : 泛型=======================可以去参看TreeMap和TreeSet
 * 格式：
 *     <参数化类型> 可以是E，T========>（数据类型）这样的有意义的词
 * 在创建类时，声明参数类型
 *
 * 好处：1.。使用泛型后，不用在使用类型转换
 *           2.。是一种安全机制
 *           3.。是给编译器使用的技术，类型的安全检查
 *
 *
 *
 * 应用：为了让集合更加安全，在存储集合内容时，由于集合内的方法大多继承于Object
 *            能够传入各种不同的类型的参数，会极大的提高应用的不安全性，通过使用泛型，在
 *            集合创建过程中，规定存储的数据类型来限制传入数据提高安全性
 */
public class FanXingText {
    //创建一个含有泛型的类
    static class Pool <T>{
        T temp;
        public void save(T temp){
            this.temp=temp;
        }
        public T get(){
            return temp;
        }
    }
    public static void main(String[] args) {
        //创建一个含有泛型的集合==========>String  ，该集合只能传入String类型
        //一般迭代器也要添加泛型
        List<String> lt = new ArrayList<String>();
        lt.add("jkjlkj");
        for (Iterator<String> it = lt.iterator(); it.hasNext(); ) {
            String next =  it.next();
            System.out.println(next);
        }
        Pool<Integer> pool =new Pool <Integer>();
        pool.save(new Integer(1));
        System.out.println(pool.get());
    }
}
